<?php
/* @var $this FacturasController */
/* @var $model Facturas */
/* @var $form CActiveForm */

//popup
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'dialogCliente',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Lista de Clientes',
'autoOpen'=>false,
'width'=> '400',
'height' => '550',
),
));

$model2 = new Clientes;
$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'clientes-grid',
    'selectionChanged' => 'seleccionc',
    'dataProvider'=>$model2->filtro(),
    'filter'=>$model2,
    'ajaxUrl'=>Yii::app()->createUrl( 'facturas/adminc'), 
    'columns'=>array(
        'IDCL',
        'NOMBRE',
        'APELLIDO',
    ),
    'pager'=>array(
    'maxButtonCount'=>5,
    ),
));

$this->endWidget('zii.widgets.jui.CJuiDialog');


//widget de producto popup
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'dialogInventario',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Lista de Productos',
'autoOpen'=>false,
'width'=> '400',
'height' => '550',
),
));
$model4 = new Inventario;
    $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'inventario-grid',
    'dataProvider'=>$model4->filtro(),
    'filter'=>$model4,
    'ajaxUrl'=>Yii::app()->createUrl( 'facturas/adminp'), 
    'columns'=>array(
        'IDINVENTARIO',
        'CODIGO',
        'DESCRIPCION',
        'CANTIDAD',
        'PRECIO',
    ),
    'pager'=>array(
    'maxButtonCount'=>5,
    ),
    'selectionChanged'=>'seleccionp',
));
$this->endWidget('zii.widgets.jui.CJuiDialog');
?>

<script type="text/javascript">
$(document).ready(function(){
	
	$("#txtCant").keyup(function(event){
		if(parseInt($("#txtCant").val())>parseInt($("#txtCantE").val()))
		{
			alert("Solo existen "+ ($("#txtCantE").val())+" en bodega");
			$("#txtCant").val(($("#txtCantE").val()));
		}
	});

	$("#txtDesc").keyup(function(event){
		if(parseInt($("#txtDesc").val()) > parseInt($("#txtDescE").val()))
		{
			alert("Su descuento maximo es de: "+ ($("#txtDescE").val()));
			$("#txtDesc").val($("#txtDescE").val());
		}
	});


	$("#IDCLIENTE").keypress(function(event){
		var keynum = window.event ? window.event.keyCode : e.which;
        alert(keynum);
		if(keynum!=13)
		{
    	if ((keynum == 8) || (keynum == 0) || (keynum == 80) || (keynum == 70) || (keynum == 74))
    		return true;
   			return /\d/.test(String.fromCharCode(keynum));
   		}
		else
		{
                       // $.getJSON("<?php echo $this->createUrl('datoc2',array('cod'=> ".$('#IDCLIENTE').val().")); ?>", 

			$.getJSON("<?php echo $this->createUrl('datoc2'); ?>?cod="+ $("#IDCLIENTE").val(), 
    		function(data){
    		if(data.IDCL!="1")
    		{
                $("#ID").val(data.ID);
    			$("#IDCLIENTE").val(data.IDCL);
    			$("#txtNombrec").val(data.NOMBRE+" "+data.APELLIDO);
    			$("#IDProducto").focus();
    		}
    		else{
                $("#ID").val("");
    			$("#IDCLIENTE").val("");
    			$("#txtNombrec").val("");
    			alert("El Codigo de cliente no existe o esta inactivo");
    		}
    		});
		}
	});
    $("#IDCLIENTE").keyup(function(event){
        $("#ID").val("");
        $("#txtNombrec").val("");
    });

	$("#IDProducto").keypress(function(event){
	var keynum = window.event ? window.event.keyCode : e.which;
		if(keynum!=13)
		{
    	if ((keynum == 8) || (keynum == 0))
    		return true;
   			return /\d/.test(String.fromCharCode(keynum));
   		}
		else
		{
		$.getJSON("<?php echo $this->createUrl('datop'); ?>/"+$("#IDProducto").val(), 
    	function(data){
    		if(data.Cant>0)
    		{
    		$("#IDProducto").val(data.ID);
    		$("#txtNombreP").val(data.Descripcion);
			$("#txtCantE").val(data.Cant);
			$("#txtPrecio").val(data.Precio);
			$("#txtImp").val(data.Imp);
			$("#txtCant").focus();
			}
			else
			{
				$("#IDProducto").val("");
    			$("#txtNombreP").val("");
				$("#txtCantE").val("0");
				$("#txtPrecio").val("0");
				$("#txtImp").val("0");
				alert("No hay existencias de ese producto");
			}
		});
	}
	});

	$("#txtCant").keypress(function(event){
		var keynum = window.event ? window.event.keyCode : e.which;
		if(keynum!=13)
		{
    	if ((keynum == 8) || (keynum == 0))
    		return true;
   			return /\d/.test(String.fromCharCode(keynum));
   		}
   		else{$("#txtDesc").focus();}
	});

	$("#txtDesc").keydown(function(event){
		var keynum = window.event ? window.event.keyCode : e.which;
		if(keynum!=13)
		{
    	if ((keynum == 8) || (keynum == 0))
    		return true;
   			return /\d/.test(String.fromCharCode(keynum));
   		}
   		else{$("#btnAgregar").focus();}
	});

});

	
function agregarFila(obj){
	if($("#IDProducto").val()!="" && $("#txtNombreP").val()!="" && $("#txtCant").val()!="0" && $("#txtCant").val()!="")
	{
        var repetido= false;
        for(var a=0; a<=parseInt($("#cant_campos").val()); a++)
        {
            if($("#IDProducto").val()==$("#hdnCodigo_"+a).val())
            {
                repetido=true;
            }
        }

        if(repetido==false)
        {
            $("#cant_campos").val(parseInt($("#cant_campos").val()) + 1);
    		var oId = $("#cant_campos").val();
            //valores de la tabla
            var codigo = $("#IDProducto").val();
            var nombre = $("#txtNombreP").val();
            var cant = $("#txtCant").val();
            var precio = $("#txtPrecio").val();
            var sub_total = ($("#txtCant").val() * $("#txtPrecio").val()).toFixed(2);
            var descuento = ((sub_total*$("#txtDesc").val())/100).toFixed(2);
            if($("#txtImp").val()==1)
            {
            	var imp = ((sub_total - descuento) * 0.13).toFixed(2);
        	}
        	else
        	{
            	var imp = 0;
        	}	
            var total = (parseFloat(sub_total)-parseFloat(descuento)+parseFloat(imp));



            var strHtml1 = "<td>" + codigo + '<input type="hidden" id="hdnCodigo_' + oId + '" name="hdnCodigo_' + oId + '" value="' + codigo + '"/></td>';
    		var strHtml2 = "<td>" + nombre + '<input type="hidden" id="hdnNombre_' + oId + '" name="hdnNombre_' + oId + '" value="' + nombre + '"/></td>' ;
    		var strHtml3 = "<td>" + cant + '<input type="hidden" id="hdnCant_' + oId + '" name="hdnCant_' + oId + '" value="' + cant + '"/></td>' ;
    		var strHtml4 = "<td>" + precio + '<input type="hidden" id="hdnPrecio_' + oId + '" name="hdnPrecio_' + oId + '" value="' + precio + '"/></td>' ;
    		var strHtml5 = "<td>" + sub_total + '<input type="hidden" id="hdnSubtotal_' + oId + '" name="hdnSubtotal_' + oId + '" value="' + sub_total + '"/></td>' ;
        	var strHtml6 = "<td>" + descuento + '<input type="hidden" id="hdnDescuento_' + oId + '" name="hdnDescuento_' + oId + '" value="' + descuento + '"/></td>' ;
        	var strHtml7 = "<td>" + imp + '<input type="hidden" id="hdnImpuesto_' + oId + '" name="hdnImpuesto_' + oId + '" value="' + imp + '"/></td>' ;
        	var strHtml8 = "<td>" + total + '<input type="hidden" id="hdnTotal_' + oId + '" name="hdnTotal_' + oId + '" value="' + total + '"/></td>' ;
        	var strHtml9 = '<td><img src="delete.png" width="16" height="16" alt="Eliminar" onclick="if(confirm(\'Realmente desea eliminar este detalle?\')){eliminarFila(' + oId + ');}"/>';
            strHtml9 += '<input type="hidden" id="hdnIdCampos_' + oId +'" name="hdnIdCampos[]" value="' + oId + '" /></td>';
            var strHtmlTr = "<tr id='rowDetalle_" + oId + "'></tr>";
            var strHtmlFinal = strHtml1 +strHtml2 + strHtml3 + strHtml4 + strHtml5 + strHtml6 + strHtml7 + strHtml8 + strHtml9;

            //tambien se puede agregar todo el HTML de una sola vez.
            //var strHtmlTr = "<tr id='rowDetalle_" + oId + "'>" + strHtml1 + strHtml2 + strHtml3 + strHtml4 + strHtml5 + strHtml6 +"</tr>";

            $("#tbDetalle").append(strHtmlTr);

            //si se agrega el HTML de una sola vez se debe comentar la linea siguiente.
            $("#rowDetalle_" + oId).html(strHtmlFinal);

    	//totales en la tabla
    	$("#txtSubtotal").val((parseFloat(sub_total)+parseFloat($("#txtSubtotal").val())).toFixed(2));
    	$("#txtDescuento").val((parseFloat(descuento)+parseFloat($("#txtDescuento").val())).toFixed(2));
    	$("#txtIVA").val((parseFloat(imp)+parseFloat($("#txtIVA").val())).toFixed(2));
    	$("#txtTotal").val((parseFloat(total)+parseFloat($("#txtTotal").val())).toFixed(2));

    	//Reset valores
    	$("#IDProducto").val("");
        $("#txtNombreP").val("");
        $("#txtCant").val("0");
        $("#txtPrecio").val("");
        $("#txtDesc").val("0");
        $("#txtCantE").val("0");
        $("#txtCant").val();
        $("#txtPrecio").val();


            return false;
    }       
    else{
            //Reset valores
            $("#IDProducto").val("");
            $("#txtNombreP").val("");
            $("#txtCant").val("0");
            $("#txtPrecio").val("");
            $("#txtCantE").val("0");
            $("#txtCant").val();
            $("#txtPrecio").val();
        alert("Este producto ya a sido agregado");
    }

}
    else{alert("No se han ingresado los datos de ningun producto")}
}

	function eliminarFila(oId){
		//Eliminacion de costos
		$("#txtSubtotal").val((parseFloat($("#txtSubtotal").val())).toFixed(2) - parseFloat($("#hdnSubtotal_"+oId).val()));
		$("#txtDescuento").val((parseFloat($("#txtDescuento").val())).toFixed(2) - parseFloat($("#hdnDescuento_"+oId).val()));
		$("#txtIVA").val((parseFloat($("#txtIVA").val()).toFixed(2)) - parseFloat($("#hdnImpuesto_"+oId).val()));
		$("#txtTotal").val((parseFloat($("#txtTotal").val())).toFixed(2) - parseFloat($("#hdnTotal_"+oId).val()));
	    
	    $("#rowDetalle_" + oId).remove();	
		return false;
	}

	function cancelar(){
	    $("#tbDetalle").html("");	
		return false;
	}


		//funcion que crea el popup cliente
function clientes()
{
    <?php echo CHtml::ajax(array(
            'data'=> "js:$(this).serialize()",
            'type'=>'post',
            'dataType'=>'json',
            'success'=>"function(data)
            {
                if (data.status == 'failure')
                {
                    $('#dialogCliente div.divForForm').html(data.div);
                          // Here is the trick: on submit-> once again this function!
                    $('#dialogCliente div.divForForm form').submit(clientes);
                }
                else
                {
                    $('#dialogCliente div.divForForm').html(data.div);
                    setTimeout(\"$('#dialogCliente').dialog('close') \",3000);
                }
 
            } ",
            ))?>;
    return false; 
}

//funcion que crea el popup producto inventario     producto(); $('#dialogClassroom').dialog('open');

function producto()
{
    <?php echo CHtml::ajax(array(
            'data'=> "js:$(this).serialize()",
            'type'=>'post',
            'dataType'=>'json',
            'success'=>"function(data)
            {
                if (data.status == 'failure')
                {
                    $('#dialogInventario div.divForForm').html(data.div);
                          // Here is the trick: on submit-> once again this function!
                    $('#dialogInventario div.divForForm form').submit(producto);
                }
                else
                {
                    $('#dialogInventario div.divForForm').html(data.div);
                    setTimeout(\"$('#dialogInventario').dialog('close') \",3000);
                }
 
            } ",
            ))?>;
    return false; 
}

	function validar(){
		
		if($("#IDCLIENTE").val()=='')
		{
			alert("Error, No se ha ingresado datos del cliente");
		}
		else
		{
			document.getElementById("facturasform").submit();
		}
	}


function seleccionc2(_id)
{
    var id = $.fn.yiiGridView.getSelection(_id);
    $.getJSON("<?php echo $this->createUrl('datoc'); ?>/"+id, 
    function(data){
        $("#ID").val(data.ID);
        $("#IDCLIENTE").val(data.IDCL);
        $("#txtNombrec").val(data.NOMBRE+" "+data.APELLIDO);
        $('#dialogCliente').dialog('close');
    });    
}

function seleccionp(_id)
{
    var id = $.fn.yiiGridView.getSelection(_id);
    $.getJSON("<?php echo $this->createUrl('datop'); ?>/"+id, 
    function(data){
        if(data.Cant>0)
        {
            $("#IDProducto").val(data.ID);
            $("#txtNombreP").val(data.Descripcion);
            $("#txtCantE").val(data.Cant);
            $("#txtPrecio").val(data.Precio);
            $("#txtImp").val(data.Imp);
            $("#txtCant").focus();
            $('#dialogInventario').dialog('close');
        }
        else
        {
            alert("No hay existencias de ese producto");
        }
    });     
}

function seleccionc(target_id)
 {


     var sel_row=$.fn.yiiGridView.getSelection('clientes-grid');
    
    if(sel_row!=''){
    var row=$.fn.yiiGridView.getRow('clientes-grid',sel_row)
$.getJSON("<?php echo $this->createUrl('datoc'); ?>/"+sel_row, 
    function(data){
        $("#ID").val(data.ID);
        $("#IDCLIENTE").val(data.IDCL);
        $("#txtNombrec").val(data.NOMBRE+" "+data.APELLIDO);
    });    
    $('#dialogCliente').dialog('close');
    }
}


</script>
<style type="text/css">
#usuario{
	width: 45%;
	height: 150px;
	border-radius: 10px;
	float: right;
}
#total{
	width: 60%;
	height: 300px;
	border-radius: 10px;
	float: right;
}
#carrera{
	width: 45%;
	height: 150px;
	border-radius: 10px;
	border: 1px solid black;
	float: right;
}
</style>
<?php $form=$this->beginWidget('CActiveForm', array(
	'id'=>'facturasform',
	'enableAjaxValidation'=>true,
	'enableClientValidation'=>true,
	'clientOptions'=>array(
		'validateOnSubmit'=>true)
)); ?>
<?php echo $form->errorSummary($model); ?>





	<input type="hidden" id="num_campos" name="num_campos" value="0" />
    <input type="hidden" id="cant_campos" name="cant_campos" value="0" />
    <input id="ID" name="ID" value="0" type="hidden" />
	
	<fieldset id="cliente"><legend>Cliente</legend>
    <div class="span12">
        <div class="span7">
        	<p># Cédula:&nbsp<input id="IDCLIENTE" type="text" name="IDCLIENTE" maxlength="10" autofocus="true" autocomplete="off"><input id="listaC" type="button" value="Buscar" onclick="clientes(); $('#dialogCliente').dialog('open');"/></p>	
        	<p>Nombre:&nbsp&nbsp&nbsp<input type="text" id="txtNombrec" name="txtNombrec" readonly /></p>
        </div>
         <div class="span5">
            <?php echo $form->labelEx($model,'IDUSUARIO'); ?>
            <?php echo $form->textField($model,'IDUSUARIO',array('value'=>Yii::app()->user->id, 'readonly'=>'true'));?>
            <?php echo $form->error($model,'IDUSUARIO'); ?>
            <?php $user=Usuario::model()->find('IDUSUARIO=?',array(Yii::app()->user->id));?>

            <?php echo $form->labelEx($model,'TIPO'); ?>
            <?php echo $form->dropDownList($model, 'TIPO',
                    array('1' => 'Factura', '2' => 'Proforma')); ?>
            <?php echo $form->error($model,'TIPO'); ?>
        </div>
    </div>
	</fieldset>
	<br>
	<fieldset id="productos"><legend>Producto</legend>
	<p>Id Producto:&nbsp&nbsp<input id="IDProducto" type="text" name="IDProducto" maxlength="6" autocomplete="off"><input id="listaP" type="button" value="Buscar" onclick="producto(); $('#dialogInventario').dialog('open');"/></p>   
	<p>Producto:&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" id="txtNombreP" name="txtNombreP" readonly/></p>
	<p>Cantidad:&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" id="txtCant" name="txtCant" autocomplete="off" value="0"/><input type="hidden" id="txtCantE" name="txtCantE" value="0"/></p>
	<p>Precio:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" id="txtPrecio" name="txtPrecio" readonly/></p>
	<p>Descuento:&nbsp&nbsp<input type="text" id="txtDesc" name="txtDesc" autocomplete="off" value="0" /></p><input type="hidden" id="txtDescE" name="txtDescE" value="<?php echo $user->Descuentos; ?>" /></p>
	<input type="hidden" id="txtImp" name="txtImp"/></p>

    </fieldset>
    <input type="reset" value="Reset" onclick="cancelar();" />
    <input type="button" id="btnAgregar" name="btnAgregar" value="Agregar Producto" class="buttons_aplicar" onclick="agregarFila(document.getElementById('cant_campos'));" />
    <legend class="legend">
        Productos en lista
    </legend>
	<table id="tblDetalle">
		<thead>
			<tr>
				<th>Código</th>
				<th>Descripcion de Articulo</th>
				<th>Cant</th>
				<th>P/Unitario</th>
				<th>Sub Total</th>
				<th>Descuento</th>
				<th>IV</th>
				<th>Totales</th>
				<th>Accion</th>
			</tr>
		</thead>
		<tbody id="tbDetalle">
		</tbody>
	</table>

	<div class="span12">
        <div class="span6">
			<p>Subtotal:&nbsp&nbsp<input type="text" id="txtSubtotal" value="0" readonly /></p>
			<p>Descuento:<input type="text" id="txtDescuento" value="0" readonly /></p>
        </div>
        <div class="span6">
			<p>IV:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" id="txtIVA" value="0" readonly /></p>
			<p>Total:&nbsp&nbsp&nbsp&nbsp<input type="text" id="txtTotal" value="0" readonly /></p>
        </div>
        <div class="row">
			<input type="button" name="Enviar" value="Enviar" onclick="validar()">
        </div>
	</div>
<?php $this->endWidget(); ?>



